package com.lagou.order.service;

import com.lagou.common.pojo.Goods;
import com.lagou.common.pojo.Order;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 *
 * 根据订单id查询商品列表
 *
 * 调用商品微服务
 *
 * feign接口调用，负载均衡
 *
 * 超时时间5秒触发熔断
 *
 * 熔断后服务降低，返回空商品列表
 *
 * 线程池隔离，并发线程数16，最大队列10000，队列拒绝阈值6000
 *
 * 订单表自行设计，注意表的拆分，遵循三大范式
 */
public interface OrderService {
    /**
     * 根据订单id查询订单
     * @param id
     * @return
     */
    public Order geOrderById(String id);

    /**
     * 分页查询
     * pageSize = 10
     * 查询条件：订单创建时间范围、订单状态（未支付、已支付、已失效、已删除）
     * 返回类型：Map（list:订单集合、total:总条目数）
     * @param timeB 开始时间
     * @param timeE 结束时间
     * @param status 状态
     * @param pageIndex 第 几 页
     * @param pageSize 每页条数
     * @return
     */
    public Map<List<Order>, Integer> getAllOrder(String timeB, String timeE, Integer status, Integer pageIndex, Integer pageSize);

    /**
     * 根据订单id查询商品列表
     * @param id 订单id
     * @return
     */
    public Integer getGoodsByOrderId(String id);
}
